Device developers may use hardware debuggers to program and/or debug a device. A hardware debugger can use a Joint Test Action Group (JTAG) based interface to gain control of a processor. A debugging application, running on a host device, can connect with the hardware debugger to perform operations such as setting software breakpoints, monitoring processor states, reading data, or writing data to one or more locations.